For computer monitors that are mostly non-interlaced or progressive type display devices, video images or graphic images must be displayed by sequentially displaying each successive line of pixel data sequentially for a frame of an image. In contrast, inter-laced display devices, such as conventional television displays, typically display images using even and odd line interlacing.
The process of producing one progressive frame on every incoming interlaced field is called de-interlacing. When such interlaced signals are received for display in a progressive display, such as a computer display or other suitable display, picture quality problems can arise especially when motion is occurring in the picture where inferior methods of de-interlacing are used.
A problem may exists for personal computers or other devices having multi media capabilities since interlaced video information received from conventional video tapes, cable television broadcasters, digital video discs and digital broadcast satellite systems must typically be de-interlaced for suitable display in a progressive display device.
Many de-interlacing techniques are known. In general, one method for de-interlacing interlaced fields is to use a motion detection technique which examines already decoded pixel information to determine whether motion has occurred and as a result, the suitable type of de-interlacing technique to apply. As such, de-interlacing using motion detection techniques is some times referred to as motion adaptive filtering wherein different filtering strategies (de-interlacing techniques) or algorithms are used in picture areas in a display with and without motion. Generally, intra-frame de-interlacing is used in picture areas with motion and field merging (weaving) is used in picture areas without motion. Coefficients in adaptive filters are based on motion detection functions. However, known motion adaptive filtering techniques may use memory to store four fields of information to evaluate. However this limited amount of information can result in improper motion detection. Using twice the memory to get eight fields of information would be too costly. As such, a more efficient motion adaptive de-interlacing technique would be desirable. Another technique is to use motion vectors that are embedded in an encoded video stream, such as an MPEG encoded stream to detect motion and de-interlace encoded video information. For example, the motion vectors and decoded pixel intensities are typically used to determine whether motion exists on a per pixel block basis.
One type of motion detection mechanism for de-interlacing sequential lines of video is described in U.S. Pat. No. 5,521,644 entitled, “Mechanism for Controlled Interlacing Sequential Lines of Video Data Field Based Upon Pixel Fields Associated With Four Successive Interlaced Video Fields,” having an inventor Sezan et al. In this example, motion detection is used as a precursor to select the value for each missing pixel of a de-interlaced frame, the frame is generated by using four consecutive fields to produce a motion detection map that is coupled to a de-interlacer. The motion detection map is subsequently coupled to a de-interlacer, together with a selected two of the four consecutive fields. The two selected fields and the motion map are used to characterize a resulting de-interlaced frame. As such, in the absence of motion, pixel values of an odd field and its immediately succeeding even field are merged. On the other hand if motion is detected, vertical interpolation is carried out for the even field, by a linear combination of immediately adjacent pixels, respectively above and below the pixel of interest. One problem with this described methodology is that the motion maps do not take into account pixel values for more than two consecutive same polarity fields. As such, the memory maps do not take into account historical changes over time of multiple same polarity fields. This system also appears to require a large amount of memory to store a plurality of motion maps for each group of two same polarity fields.
Two interpolation techniques are often involved in de-interlacing, these are temporal interpolation and spatial interpolation. Temporal interpolation creates the missing pixels using pixels that were incorrect in time but have the correct spatial coordinates. Temporal interpolation (e.g. weave) is typically best suited if the video sequence consist of static images but does not work well with moving video. Spatial interpolation (e.g. bob) creates missing pixels using pixels that are correct in time but have incorrect spatial coordinates. Techniques vary from simply averaging the pixels above and below the missing pixel to more elaborate methods that utilize many nearby pixels in order to derive edge orientation and reproduce edges without jagged artifacts. It is also known to control a blend of spatial versus temporal interpolation along, for example, edges of detected motion.
Graphics processors, which are typically coprocessors that operate in conjunction with a host CPU or other processor, are known to employ de-interlacing functions. However, additional memory may be required to store a suitable type of fields for motion estimations. In addition, separate de-interlacing chips are also available. Typically, graphics processors include 3D engines that generate graphics information that may be overlaid on video, such as “windows,” and in addition may have 3D engines that render 3D images for games based on drawing commands that cause the rendering of 3D objects from vertex information. Such devices are typically used in multi media devices such as lap top computers, hand-held devices, desk top devices, set top boxes, and other suitable devices. As such, it would be desirable to have a de-interlacing technique compatible with graphics processors or implemented as discreet logic or suitably employable in other architectures that would attempt to reduce the amount of memory required in comparison with other motion estimation de-interlacing techniques.
As noted above, common de-interlacing techniques include applying a “bob” when up-sampling from a current field to a field missing pixels. In areas of strong motion and to apply a weave operation (mixing two fields to fill a missing pixel) in still areas. Typical hardware solutions can limit the number of fields available to save on memory costs but may use complex logic to detect motion and de-interlace fields.